Instant communications system having established communication channels between communication devices

ABSTRACT

A communication server and accompanying communication devices allow near instantaneous communication between users of the communication devices. A communication device may be configured with multiple channels, where each channel is assigned a corresponding communication device. As the communication devices are registered with the communication server, each communication device has knowledge of other registered communication devices. Thus, communication devices may communicate nearly instantaneously with each other. Furthermore, as the communication device is equipped with multiple channels, a single communication device may host a conference call with other communication devices. In addition, communication device may include multiple buttons to control the communication device, and indicator lights to indicate the status of calls with other communication devices

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 17/087,461, filed Nov. 2, 2020, which is a continuation of U.S.patent application Ser. No. 16/417,489, filed May 20, 2019, which is acontinuation of U.S. patent application Ser. No. 14/954,693, filed Nov.30, 2015 (now U.S. Pat. No. 10,298,644), which is a continuation of U.S.patent application Ser. No. 13/804,854, filed Mar. 14, 2013 (now U.S.Pat. No. 9,204,095), which is a non-provisional application claiming thebenefit of U.S. Provisional Patent Application No. 61/642,616, filed May4, 2012, each of which is hereby incorporated by reference in itsentirety.

TECHNICAL FIELD

The present disclosure relates to the technical field of voice or videocommunications using electronic devices connected by wireless and wirednetworks. More specifically, the disclosure is directed to the technicalfield of voice or video communications using portable electronic devicesconnected by a wireless network (e.g., WiFi, Bluetooth, the cellularnetwork, ultra wide band, WiMax) or a wired network (e.g., Ethernet,DSL).

BACKGROUND

Conventional communications devices such as phones typically don't offerthe instant communications feature with a push of a button. On a typicalphone, a user needs to press several buttons to dial a phone number.Then there is the ringtone waiting for the callee to pick up the call.So the communication is not instant and it requires pushing multiplebuttons. A callee is the person who receives an incoming call. On thecallee's end, a callee has to push at least a button to be able to hearthe caller. Some cell phones have the push-to-talk feature that offersthe instant voice with a push of button. However, push-to-talk on a cellphone is mainly designed for one-to-many type of group calls.Additionally, these push-to-talk calls are only half duplex, meaningcommunication is one way at any time, therefore only one party can talkat a time by seizing the floor first. There are instant messagingsoftware systems that indicate the status of the other users and allowusers to send instant messages to each other, but these systems don'tprovide instant voice or video services.

Additionally, a conventional phone call consists of two call legs: onecall leg going from the caller to the callee and the other call leggoing from the callee to the caller. Basically, both call legs have tobe set up before the caller and callee can communicate. Callers andcallees don't have control of the call legs separately.

In real life, a caller may only need to speak to a callee without anyexpectation of any response from the callee. Therefore only an outgoingcall leg from the caller to the callee is needed. Similarly, a calleemay only want to listen in on a call. Therefore there no need to set upa call leg from the callee to the caller. With traditional phones, thereis no option for a caller or a callee to control the call legs.

Furthermore, the need for call set up on a broadband network is obviatedas the network bandwidth grows. Call setup causes delay which hindersinstant communications. The concept of call set up originates from thecircuit switched networks where resources are scare and need to beallocated. As the voice communications evolve from circuit switchednetwork to packet switched network, Voice over IP (VoIP) technologieswere developed. VoIP also requires call setup due to the limited networkresources at the time of its development. In today's wireless and fixednetworks, resources are abundant relatively speaking in consideration ofthe bandwidth requirements of the real-time voice and videocommunications.

BRIEF SUMMARY

Given the advances of today's technologies, there is little need for thetraditional call setup in today's broadband networks. The current callsetup process hinders the natural ways in which people interact with oneanother. This disclosure provides for a communication system in which acommunication channel is first established between two communicationdevices before any calls are placed. Minimal maintenance signalingmessages are used to keep the channel up and alive. When a call isplaced by a user, there is no call set up. One advantage of this setupis that it delivers the instant communications experience to users byremoving unnecessary call set up and by providing intuitive userinterface that mimics the natural ways people interact with one another.The end result is that users can communicate with one another as if theywere all physically present in the same room.

Accordingly, this disclosure provides for one or more servers andportable communications devices connected via networks for instantcommunications. Furthermore, these devices may be connected to a widearea network, such as the Internet, via a wireless network such as aWiFi, Bluetooth, a cellular network, and the like. The devices may alsobe connected via a wired network, such as Ethernet, or combinations ofwired and wireless networks.

This system facilitates instant communications among users via voice orvideo with a simple push of a button on corresponding devices. Incontrast to a traditional phone call, there may be no dial tone orringtone. There may be no picking up the call by the callee either.Additionally, one or more incoming and/or outgoing communication may beseparately controlled by the users through button operations. Thecommunication may be relatively instant and direct as if the users werephysically present in the same room.

To support instant communications, or relatively instant communications,among a plurality of users, the instant communication system of thisdisclosure may include several operational modes. These operationalmodes are discussed below.

-   -   One-way or two-way communications

One-way communications means one person can speak to another person, butnot vice versa. Two-way communications means two people can talk witheach other.

-   -   One-to-one, one-to-many, or many-to-many communications

One-to-one means the communication is between two people. One-to-manymeans the communication is between one person and multiple people at thesame time but separately. An example may be a dispatcher communicatingwith the taxi drivers that the dispatcher manages. The tax drivers canhear the dispatcher and talk with the dispatcher, but the taxi driverscannot communicate with each other. Many-to-many means the communicationis among multiple people at the same time, like in a traditionalconference call.

-   -   Voice or video

Voice means only voice communications may be used. Video means bothvoice and video communications may be used.

-   -   Any combination of the above

Users of the system can control the selection of the communication modethrough the user interface of the disclosed device. For instance, a usermay select the mode of a one-way one-to-one voice call. Alternatively,the user may select the mode of a one-way one-to-many video call. Thedevices that support video calls may include a display in addition toother components, such as a speaker and a microphone.

While this disclosure is directed to an instant voice system withinstant voice devices, the term “voice” may also refers to any audiosignals. Therefore, throughout this disclosure, “voice” and “audio” maybe used interchangeably. The system may also be extended to supportvideo communications.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an aerial view of an exemplary communication deviceaccording to aspects of this disclosure.

FIG. 2 illustrates an example of a Talk Button and a Silence Button ofthe communication device according to aspects of this disclosure.

FIG. 3 illustrates a side view of the communication device according toaspects of this disclosure.

FIG. 4 illustrates an exemplary hardware diagram of the communicationdevice according to aspects of this disclosure

FIG. 5 illustrates multiple communication devices in communication witheach other and a communication server according to aspects of thisdisclosure.

FIG. 6 illustrates an example of configuring the channels of thecommunication device according to aspects of this disclosure.

FIG. 7 illustrates a conference call among multiple communicationdevices according to aspects of this disclosure.

FIG. 8 illustrates an example of a daisy-chained conference call amongmultiple communication devices according to aspects of this disclosure.

FIG. 9 illustrates a loop that may be formed by multiple connectedcommunication devices according to aspects of this disclosure.

FIG. 10 illustrates an example of dropping a second host from aconference call according to aspects of this disclosure.

FIG. 11 illustrates logic flow for recording a voicemail according toaspects of this disclosure.

FIG. 12 illustrates a bottom-up view of the communication deviceaccording to aspects of this disclosure.

FIG. 13 illustrates another example of configuring the channels of thecommunication device according to aspects of this disclosure.

FIG. 14 illustrates an exemplary call flow for adding a channel to thecommunication device according to aspects of this disclosure.

FIG. 15 illustrates an exemplary call flow for talk initiation and talktermination according to aspects of this disclosure.

FIG. 16 illustrates an exemplary call flow for broadcasting a callaccording to aspects of this disclosure.

FIG. 17 illustrates an exemplary call flow for a conference callactivation according to aspects of this disclosure.

FIG. 18 illustrates an exemplary call flow for dropping a conferencecall participant by the host of the conference call according to aspectsof this disclosure.

FIG. 19 illustrates an exemplary call flow for dropping a conferencecall by a participant of the conference call according to aspects ofthis disclosure.

FIGS. 20A-20B illustrates an exemplary call flow for activating aconference call to all connected devices according to aspects of thisdisclosure.

FIG. 21 illustrates an exemplary call flow for terminating a conferencecall to all connected devices according to aspects of this disclosure.

FIG. 22 illustrates an exemplary call flow for adding a participant to aconference call by a second host according to aspects of thisdisclosure.

FIG. 23 illustrates an exemplary call flow for dropping a second host ofa conference call by the host of the conference call according toaspects of this disclosure.

FIG. 24 illustrates an exemplary graphical user interface for atouch-screen embodiment of the communication device according to aspectsof this disclosure.

FIG. 25 illustrates another exemplary graphical user interface for atouch-screen embodiment of the communication device according to aspectsof this disclosure.

DETAILED DESCRIPTION

FIG. 1 illustrates an aerial view of an exemplary communication device102 according to aspects of this disclosure. In one embodiment, thecommunication device 102 includes one or multiple microphones 104,speakers 106, Talk Buttons 108, Silence Buttons 110. The communicationdevice 102 may also have a Talk to All Button 112, Silence All Button114, Voicemail Button 116, Away Button 118 and the Instant Call Add 120and Drop Buttons 122. While this disclosure references the controls ofthe communication device 102 as “buttons,” any type of user control maybe substituted for the disclosed buttons, such as knobs, switches,levers, or other such user controls.

Additionally, the communication device 102 may have various lightindicators including a Channel Light 124, a Connectivity Light 126, aTalk Light 128, a Silence Light 130, a Talk to All Light 132, a SilenceAll Light 134, a Voicemail Light 136 and an Away Light 138.

Furthermore, the exemplary communication device 102 may be equipped withmore than one of each of the light indicators and/or user controls.Thus, the communication device 102 may have multiple Talk Buttons,Silence Buttons, Channel Lights, Talk Lights, Silence Lights, andmultiple other such user controls and light indicators.

The device 102 may also have a volume control 140, an On/Off Button 142,an audio line input/output 146, and a USB port 144.

A communications channel on the device 102 may be a bi-directionalphysical or logical connection to another device through whichinformation flows. Such information may include multimedia streams,system signaling messages, and other such information. In general, amultimedia stream may include audio, such as speech, music, sound, orother types of audio, video, such as a movie, webcam recording, or othertypes of video, or combinations thereof. A multimedia stream may alsocontain only type of multimedia content (e.g., an audio-only multimediastream or a video-only multimedia stream).

In one embodiment, the pair of Talk and Silence Button 108 & 110 is usedto operate on a channel. There is a one-to-one mapping between a channeland a pair of Talk and Silence Buttons 108 & 110. One or more ChannelLights 124 may indicate the status of the channels.

The device 102 is connected to other devices (the “connected devices”)via one or more communication channels. Accordingly, the device 102 maybe in communication with multiple connected devices. On the device 102,each channel may be associated with an identifier that maps one-to-onean identifier of a connected device, such as an IP address. This mappinginformation may be configured and stored in a memory of the device 102.

When the Talk Button 108 is pressed down, the corresponding channel isin a talk mode. The corresponding Talk Light 128 turns red. When thebutton 108 is up, the corresponding channel is in the mute mode. TheTalk Light 128 turns off. Pressing down the same button 108 repeatedlyallows a user to alternate between talk and mute modes.

When a caller presses down a Talk Button 108, a one-to-one multimediastream from the caller to the callee is initiated. The multimedia streammay include the caller's voice which is sent to the callee's device. Ifthe callee responds by pressing down the Talk Button 108 on his device,then another one-to-one multimedia stream from the callee to the calleris initiated. Pairing these two multimedia streams of oppositedirections creates the two-way one-to-one communications between the twodevices. When the Silence Button 110 is up, it is in listen mode. Thecorresponding Silence Light 130 is dark. When the Silence Button 110 isdown, it is in silence mode. The Silence Light 130 turns on. An incomingmultimedia stream on the corresponding channel is silenced. Pressingdown the same button repeatedly allows a user to alternate betweenlisten and silence modes.

Often times, a user may need to press on both the Talk Button 108 andthe Silence Button 110 simultaneously. As shown in FIG. 2, the placementof the Talk Button 108 and Silence Button 110 is designed toconveniently allow a user to press on the buttons individually ortogether.

When a user presses down the Talk to All Button 112, then all the TalkButtons on the device go down with it. This operation initiates thetransmission of the audio streams going to all the connected devices. Inone embodiment, the communication device 102 may forego audio mixing andmay transmit multimedia streams containing only audio, such as theuser's voice. The user is able to talk to all the users of the connecteddevices (the “connected users”). The connected users can hear the user.The Talk to All Light 132 and all the Talk Lights turn on. When the userpresses on the Talk to All Button 112 again, he releases the Talk to AllButton 112 as well as all the Talk Buttons on the device. This operationdeactivates all the outgoing audio streams. The Talk to All Light 132and all the Talk Lights turn off. In this case, the connected userscan't hear the user anymore.

When a user presses down the Silence All Button 114, then all theSilence Buttons on the device are pressed down with it. This operationsilences all the incoming audio streams on his device. All the SilenceLights and the Silence All Light 134 turn on. When the caller presses onthe Silence All Button 114 again, he releases the Silence All Button 114as well as all the Silence Buttons on the device. This operationun-silences all the channels, therefore the user can hear all thechannels again. All the Silence Lights and the Silence All Light 134turn off.

The Instant Call Add/Drop Button 120-122 is used to add or drop calls.The Call Add Light turns on when the Call Add Button is down.

If a user is walking away from his device, he can press down the AwayButton 118. The Channel Lights on the connected devices corresponding tothe user/device turn flashing green. This informs the users of theconnected devices that this user is away. When the Away Button 118 isdown, the Away Light 138 turns on.

The Connectivity Light 126 indicates whether the device is connected tothe Instant Communications Servers or not.

The On/Off Button 142 serves several purposes.

Reset the device buttons to the original positions. When the device 102is on, quickly pressing the Off button once will trigger this type ofreset. The buttons that may be up by default will be returned to the upposition. The buttons that may be down by default will be returned tothe down position. This feature allows a user to return buttons to theirdefault position with one push of a button.

Completely reset the device 102 to the factory default settings such asbutton position, channel configurations. When the device 102 is on,quickly pressing the Off button twice will trigger this type of reset.

Turn off the device 102, or power off the device 102. When the device102 is on, pressing the Off button and holding it down for 5 seconds ormore will turn the device 102 off.

Turn on the device 102, or power on the device. When the device 102 isoff, pressing the On button will turn the device 102 off.

The volume control 140 adjusts the volume of the speakers.

The audio line is for the audio input and output connected with aheadset.

For power, a lithium-ion battery can be charged through the USB port144. Additionally, the USB port 144 can be used for the device toconnect to other machines such as a laptop via a USB cable.

FIG. 3 illustrates a side view of the communication device 102 accordingto aspects of this disclosure. In one embodiment, the device 102 maytake on the shape of a dome.

FIG. 4 illustrates an exemplary hardware diagram of the communicationdevice 102 according to aspects of this disclosure. A processor, such asa Complex Instruction Set Computing (“CISC”) or a Reduce Instruction SetComputing (“RISC”) processor, may control one or more aspects of thedevice. Audio CODEC encodes analog audio as digital signals and convertsdigital signals back into analog signals. Even though the device may usea wired network such as the Ethernet, or a cellular network, the device102 may also use a wireless network interface that is cellular, WiFi orBluetooth. The processor may further include additional sub-modules,such as an audio mixer, echo cancellation, and noise reduction.

Echo Cancellation and Noise Reduction functions are used to enhance thevoice quality by removing echo and reducing noise in the speech. Theremay be multiple microphones that could form a microphone array to helpfurther enhance the speech quality.

The Audio mixer function is leveraged for a conference call wheremultiple audio streams from conference call participants are mixed intoa composite audio stream of multiple voices.

FIG. 5 illustrates multiple communication devices in communication witheach other and a communication server according to aspects of thisdisclosure. In one embodiment, the device may be connected via one ormore wireless networks to the Internet. One or more communicationservers may communicate with the devices. This system architecturesupports both instant voice and video communications.

While FIG. 5 illustrates four devices, the system architecture maysupport any number of devices. Each device supports certain number ofchannels. If the channel operation uses physical buttons, then thenumber of channels on a device is limited by the number of Talk Button108 and Silence Button 110 pairs. In another implementation, where thechannel operation uses virtual buttons on touch screen, then the numberof channels supported on the touch screen may be nearly unlimited.

A user of a device can use the device for instant communications withanother user of another device. Additionally a group of users cancommunicate with each other by using their devices. But first, they needto configure the channels on their devices to correspond to the otherusers or devices.

FIG. 6 illustrates an example of configuring the channels of thecommunication device according to aspects of this disclosure. Asillustrated in FIG. 6, User_1 is the user of Device 1, User_2 is theuser of Device_2, User_3 is the user of Device_3, User_4 is the user ofDevice 4.

In one embodiment, there may be multiple channels on a device. Thesechannels are configured by its user to connect to a specific set ofdevices.

As shown in FIG. 6, channel 1, 2 and 3 on a device refer to the threechannels. The three channels are denoted by Channel 1, Channel 2 andChannel 3, respectively. The Talk Button of Channel 1 on Device 1 isreferred to as “Talk 1”, and the Silence Button of Channel 1 on Device 1is referred to as “Silence 1”. Additionally, the Channel Light ofChannel 1 on Device_1 is referred to as “Channel Light 1”.

Additionally, FIG. 6 shows the mapping between a channel and anotherdevice. On device 1, user_1 configures Channel 1, Channel 2 and Channel3 on Device_1 to connect to three devices respectively: Device_2,Device_3 and Device 4. Channel 4 isn't configured on Device 1. Device_2,Device_3 and Device 4 are called “connected Devices” to Device 1.Similarly Channel 2 of Device_2 is connected to Device_3, and Channel 3of Device 4 is connected to Device 3.

Additionally, in order to support voice-activated calling, users canprogram each channel on his device by speaking a nickname into themicrophone during the configuration process. For instance, on Device 1,Channel 1 connects to User 2 whose nickname is John. User 1 of Device 1can configure Channel 1 by speaking “John” to the microphone during theconfiguration process. This way, when User 1 speaks to Device 1 bysaying a command “Call John”, Device_1 will initiate a audio stream fromDevice 1 to Device_2. Command “Call John” is equivalent to User_1pressing down the Talk_1 button.

The voice communications from a caller to a callee is instant. By simplypressing down the Talk Button 108, the caller can speak to a calleedirectly. There may be no dialing of digits and there may be no dialtone.

The callee may first hear a sound to indicate an incoming audio stream.At the same time, a Channel Light corresponding to the caller's deviceflashes a red light to indicate which channel the caller is comingthough. The callee may then hear the voice of the caller instantly onspeaker without any need to do anything. It may appear like two peoplecommunicate with each other as if they were physically present in thesame room.

The callee can then decide whether to respond or not. If the calleedecides to respond, he/she can simply press down the Talk Button next tothe flashing red light and speak directly to the caller. Now the callerand callee can speak with each other.

A user can talk to all the channels connected to a pre-configured set ofdevices. By simply pressing down the Talk to All Button 112, the usercan speak to a group of users directly. The group of users can hear theuser instantly on speaker.

A user can toggle between Talk Buttons including the Talk to All Button112 seamlessly and effortlessly. For instance, a caller can speak to afirst callee by pressing down the corresponding Talk Button (the firstTalk Button), then she presses down another Talk Button (the second TalkButton) to switch to speak to a second callee. At this time, the firstTalk Button is released and the paired Silence Button goes down andstays down. Since the second Talk Button is pressed down, she can talkto the second callee. Then she can switch back to the first callee bypressing down the first Talk Button.

Using the Silence Button 110, a user can control what he hears. Bypressing down the Silence Button 110 of a channel, he can silence thechannel. By pressing down the Silence All Button 114, he can silence allthe channels.

A user can indicate his availability via an Away Button 118. By pressingdown the Away Button 118, he indicates to the other connected devicesthat he is away.

As discussed previously, multiple modes of communications are supported.They include one way one-to-one and one-to-many communications. Theyalso include two way one-to-one, and one-to-many communications.Furthermore, an instant conference call can be supported among multipleusers. The basic one way one-to-one communication channel is used as abasic building block to construct more complex communications modes.

There is no limit to the number of devices in the system. It can be aself-contained home system that resides on a Local Area Network (LAN)that contains only a few devices. Or it can be connected to millions ofother devices via the Internet.

There is no constraints to the location of devices as long as they cancommunicate with each other via a networking protocol, such as theInternet Protocol (IP).

2.1. Talk Button 108 Operation Rules

The Talk Button 108 operation including the Talk to All Button 112 on adevice follows these operation rules:

When a Talk Button 108 is down, the corresponding user's voice is sentover the corresponding channel.

When multiple Talk Buttons are down, the user's voice is sent over thecorresponding multiple channels.

When a user presses down a Talk Button on the device, the button staysdown when the user stops pressing.

When a user presses down the Talk to All Button 112 on the device, theTalk to All Button 112 stays down when the user stops pressing.Additionally all the Talk Buttons on the device go down and stay down.The user's voice is sent to all the connected devices.

If a user presses on a Talk Button 108 that is already down, then theTalk Button 108 is released. Releasing the Talk Button 108 stops sendingthe user's voice over the corresponding channel. It is similar to themute feature on a traditional phone.

When a user presses on the Talk to All Button 112 that is already down,the Talk to All Button 112 is released. Additionally all the TalkButtons are released.

When a user presses down two or more Talk Buttons simultaneously, thenthese buttons stay down together when the user stops pressing.

Where one or more Talk Buttons are down on a device, and the userpresses down another Talk Button that is up, then all the Talk Buttonsthat were down are released, and this Talk Button remains down.Additionally, the Silence Buttons pairing with the previously down TalkButtons go down and stay down.

If two or more Talk Buttons are already down, and the user presses downon one or more of the Talk Buttons that are down, then only thosepressed buttons are released. The other down buttons remain down.

To release a Talk to All Button 112, a user can press on the Talk to AllButton 112 again. This will release the Talk to All Button 112 as wellas all the Talk Buttons. Alternatively he can press on a Talk Buttonwhich may be down already. Pressing on this Talk Button 108 will releasethis Talk Button as well as the Talk to All Button 112. If any one ofthe Talk Buttons on the device is up, then the Talk to All Button 112will be released. However, the other Talk Buttons remain down.

A Talk Button 108 has a Talk Light 128 that can light up when the TalkButton 108 is down, and the Talk Light 128 turns off when the TalkButton 108 is released. When the Talk Button 108 is pressed down on onedevice, it causes a corresponding Channel Light on the connected deviceto turn flashing red light on.

2.2. The Silence Button 110 Operation Rules

The Silence Button 110 operation including the Silence All Button 114 ona device follows these operation rules:

When a Silence Button 110 is pressed down, the incoming audio stream onthe corresponding channel to the device is silenced.

When a Silence All Button 114 is pressed down, all the incoming audiostreams to the device are silenced.

When a user presses down any one or multiple Silence Buttons on thedevice, the buttons stay down when the user stops pressing.

When a user presses down the Silence All Button 114 on the device, theSilence All Button 114 stays down when the user stops pressing.Additionally all the Silence Buttons go down and stay down.

If a user presses on a Silence Button 110 that is already down, then theSilence Button 110 is released.

If a user presses on a Silence All Button 114 that is already down, thenthe Silence All Button 114 is released. Additionally, all the SilenceButtons are released.

If a Silence Button 110 including the Silence All Button 114 is alreadydown, and the user presses on another Silence Button 110 that is up,then the both Silence Buttons remain down.

When a user presses down two or more Silence Buttons including theSilence All Button 114 simultaneously, then these buttons stay downtogether when the user stops pressing.

If two or more Silence Buttons including the Silence All Button 114 arealready down, and the user presses down one or more of the SilenceButtons that are already down, then the pressed buttons are released.The other down buttons remain down.

A Silence Button 110 has a Silence Light 130 that can light up when itis pressed down, and the light turns off when the Silence Button 110 isreleased. However the operation on the Silence Button 110 on one devicedoesn't change the Channel Light on the corresponding connected device.So the user of the connected device doesn't know he is being silenced.

2.3. Interaction Between Talk Button 108 and Silence Button 110:

If a Silence Button 110 on a device is down, a user presses on the TalkButton 108 corresponding to the same channel, then the Silence Button110 is released. For example, when the Silence_1 button on Device_1 ispressed down, User_1 can't hear User_2. Then if User_1 presses down Talk1 button on Device_1, then Silence_1 button is released. At this time,User_1 and User_2 can hear each other. Note that the Channel Light ofthe corresponding channel on Device_2 behaves independently from theSilence Button 110 actions on Device_1.

If a Talk Button 108 on a device is down, then a user presses down thepairing Silence Button 110, then the Silence Button 110 stays down.

If a first Talk Button on a device is down, then a user presses on asecond Talk Button that is up, then the first Talk Button 108 isreleased. Additionally, the Silence Button paired with the first TalkButton goes down and stays down. This feature allows a user to togglebetween two channels with minimal operation.

2.4. Voicemail Button and Voicemail Light

The Voicemail Light indicates the existence of new voicemail messages.Pressing down the Voicemail button, a user can listen to voicemailmessages starting with the most recent ones first. Pressing on thebutton again, the user deletes the current message and skips to the nextvoicemail message. The current message is deleted even if it is notcompletely listened to. Instead of pressing the Voicemail Button once,if a user quickly presses the button twice, the user can save thecurrent message and skips to the next message.

2.5. Call Add and Call Drop Button Operation Rules

A Call Add Button is used to add another user to an existing call,creating essentially an instant conference call. To add a user, pressthe Call Add Button first, then press down the Talk Button 108corresponding to the added user. The Call Add Button does not stay downwhen pressed. The Call Add Light will turn red to indicate the existenceof a conference call. The corresponding Talk Button 108 stays down andthe Talk Light 128 turns red. On the connected device of the added user,he will hear a sound alert for the incoming audio stream. Additionally,the corresponding Channel Light on his device flashes red light.

A user can also add all the users on his device to the conference callat once by pressing the Call Add Button first, then press down the Talkto All Button 112. The Call Add Button does not stay down when pressed.The Call Add Light will turn red to indicate the existence of aconference call. The Talk to All Button 112 as well as all the TalkButtons on the device stay down. The corresponding Talk to All Light 132as well as all the Talk Lights turn red. On the devices of thecorresponding users, they will hear a sound alert for the incoming audiostream. Additionally, the corresponding Channel Lights on their devicesflash red light.

A Call Drop Button is used to terminate a call with another user. A CallDrop Button has no light indicator. To terminate a conference call, theconference call host presses the Call Drop Button first, and thenpresses the already down Talk Button 108 corresponding to theparticipant to be dropped. The Talk Button 108 will be released.

The call between the host and the participant is terminated. Bothdevices stop sending audio streams to each other. Both users will hear asound alert indicating the termination of the call. Additionally, thecorresponding Talk Button 108 on the participant's device is released aswell. The corresponding Channel Lights on both devices turn green.

A conference call host can first press the Call Drop Button, and thenpresses the Talk to All Button 112. All the Talk Buttons will bereleased. The call between the host and all the participants isterminated. The participating devices of the conference call stopsending out audio streams. All parties involved will hear a sound alerton the conference call indicating the termination of the conferencecall. Additionally, the corresponding Talk Buttons on participants'devices are released as well. The corresponding Channel Lights on allthe participating devices turn green. Note that the Talk to All Button112 stays up after the Call Drop Button is pressed first and then theTalk to All Button 112 is pressed next.

Note that if the host presses the Call Drop Button first, and thenpresses a Talk Button 108 that is up. Then the Talk Button 108 stays up.In other words, a Talk Button 108 stays up after the Call Drop Button ispressed first and the Talk Button 108 is pressed next.

In addition, note that the Call Add Light on the device that initiatedthe conference call will turn dark once the conference call iscompletely terminated, meaning no active channels of the conference callon the device remains.

2.6. Channel Lights:

A Channel Light of a channel on a device indicates the status of thechannel connected to another device or user. For instance, the ChannelLight of Channel 1 on Device_1 (Channel Light 1) indicates the channelstatus with Device_2 or User_2.

A Channel Light may have these colors: dark, green, red, flashing red,and flashing green. Alternative or additional colors may also be used.

Dark

Dark lights indicate no network connectivity between two devices. Forinstance, when Device_1 and _2 are not connected, then Channel Light_1on Device_1 and Channel Light_1 on Device_2 are both dark. First, if thechannel corresponding to a Talk Button 108 is not configured, theChannel Light is dark. Second, when a Channel Light is dark, thecorresponding communications channel cannot be established. Forinstance, if Channel Light_1 on Device_1 is dark, then a communicationschannel cannot be established between Device_1 and Device_2. Usually ifthere is no connectivity, it goes both ways. So both Channel Lights onDevice 1 and Device 2 are dark.

Green

Green indicates there is network connectivity between two devices. Forinstance, Channel Light_1 on Device_1 and Channel Light_1 on Device_2both turn green if a connection between Device 1 and Device_2 isestablished.

Flashing Green

Flashing green indicates that the user of the other device correspondingto the channel is away. For instance, when Channel Light_1 on Device_1is flashing green light, it means that User_2 of Device_2 is away. Thereis an Away Button 118 on Device_2. If User_2 presses down the AwayButton 118, then the corresponding Channel Lights of Channel 1 on Device1, Channel 2 on Device_3 and Channel 2 on Device_4 are all flashinggreen. Pressing down the Away Button 118 again, User_2 releases thebutton, and the corresponding Channel Lights of Channel 1 on Device 1,Channel 2 on Device_3 and Channel 2 on Device_4 all become green.

Flashing Red

A flashing red light indicates an incoming audio stream on thecorresponding channel that hasn't been answered. For instance, if thereis an incoming audio stream from Device_2 to Device 1, then ChannelLight_1 on Device_1 turns flashing red. A flashing red light is used totell the user on which channel the call is coming in from.

Red

If a channel has a flashing red light and the user presses down the TalkButton 108 of the channel, then the Channel Light turns steady red. Whenthere are both incoming and outgoing multimedia streams on a channel,the corresponding Channel Light turns steady red.

In summary, the Channel Light is flashing red if there is an incomingmultimedia stream. The Channel Light is steady red if there are incomingand outgoing multimedia streams on the channel. The Channel Light isneither color when there is only an outgoing stream on the channel. Forinstance, the Channel Light on a device will turn from red light toflashing red light if the user releases the Talk Button 108 of thechannel.

In one embodiment, the Channel Light of a channel may be configured todisplay one color at any given time. Moreover, each of the colors of theChannel Light may be assigned a priority. In terms of priority, thedisplay priority may be in the order of high to low: red, flashing redlight, flashing green light, and green light. In other words, if twostates are both true, the one with a high priority will be indicated bythe Channel Light. For instance, if a user is away, and the user pressesdown a Talk Button 108, then the Channel Light on the connected devicesmay indicate flashing red light. Or if a user is away, and theconnectivity between the two devices is good, then the flashing greenlight on the connected devices may be on.

2.7. Other Light Indicators:

Talk to All Light 132

When the Talk to All Button 112 is not pressed down, the Talk to AllLight 132 remains dark. If a user presses down the Talk to All Button112, the Talk to All Light 132 turns steady red. The Talk to All Light132 may be embedded inside the Talk to All Button 112. One-wayone-to-many audio streams may be initiated from a first device to theother connected devices.

Talk Light 128

When a Talk Button 108 is not pressed down, the Talk Light 128 remainsdark. If a user presses down the Talk Button 108, the Talk Light 128turns steady red. The Talk Light 128 may be embedded inside the TalkButton 108.

Silence All Light 134

When the Silence All Button 114 is not pressed down, the Silence AllLight 134 remains dark. If a user presses down the Silence All Button114, the Silence All Light 134 turns steady red. The Silence All Light134 may be embedded inside the Silence All Button 114.

Silence Light 130

When a Silence Button 110 is not pressed down, the Silence Light 130remains dark. If a user presses down the Silence Button 110, the SilenceLight 130 turns steady red. The Silence Light 130 may be embedded insidethe Silence Button 110.

2.8 Sound Indicators

Whenever there is an incoming audio stream, a sound may be played toindicate the incoming audio stream on the receiving device.

A different sound may be played on both ends of the channel, whenever achannel is terminated using the call drop feature.

2.9. Use Cases:

All of the following use cases assume that the devices are configured asshown in FIG. 6.

If the Talk_1 button on Device_1 is pressed down, the audio stream fromDevice 1 to Device 2 is initiated. User_1 can speak to User_2 and User_2can hear User 1. However, User_1 can't yet hear from User_2. Similarly,on Device_2, pressing down Talk_1 initiates the audio stream fromDevice_2 to Device 1. Pairing these two channels of opposite directionsforms the two-way one-to-one communication between Device 1 and Device2. Therefore User 1 and User 2 can hear each other.

When a user of a device presses down two Talk Buttons simultaneously,one-way one-to-two audio streams are initiated. For instance, onDevice_1, if User_1 presses down both Talk_1 and _3. In this case,User_1 can be heard by User 2 and 4. User 1 can't hear User 2 or User 4.User 2 and User 4 can't hear each other.

On Device 1, three out of the four available channels are configured toconnect to Device_2, _3, and _4. When the Talk to All Button 112 onDevice_1 is pressed down, one-way one-to-three audio streams areinitiated. In this case, User_1 can speak to all channels. User_2, _3,and _4 can hear User_1, but User_1 can't hear from User_2, _3 or _4.

Similarly, a user of a device can deactivate a audio stream by releasinga Talk Button 108. There are multiple ways to release a Talk Button 108as described by the Talk Button 108 Operation Rules. Once the TalkButton 108 is released, the audio stream is deactivated. For instance,on Device 1, if both Talk 1 and Talk_2 buttons are already down and User1 releases the Talk 1 button by pressing on it, the Talk_2 button staysdown. In this case, the audio stream from Device 1 to Device_2 isdeactivated, but the audio stream from Device 1 to Device_3 stays on.

Users of Device 1, Device_2, Device_3, and Device_4 can establishdifferent types of calls by pressing down different combinations of TalkButtons. For instance, User 1 can press down the Talk to All Button 112on Device 1. As a result, all the Talk Buttons on Device 1 go down andstay down. Now User 1 can be heard by User_2, User_3 and User_4. User_2can press down Talk_1 button on Device 2, and User_3 can press downTalk_1 button on Device 3. User_1 can hear User_2 and User_3. At thistime, if User_1 presses on the Talk 1 button on Device 1, then the Talkto All Button 112 and Talk 1 button on Device 1 are released. User 2can't hear User 1 anymore. User_1 and User_3 can still hear each other.User 1 can still hear User 2.

2.10. Handling of Incoming Audio Streams

A callee may get an incoming audio stream while his device is idle,meaning there is no active channels. When an incoming audio stream comesin on a channel, the Channel Light of the channel flashes red light.There is also a sound notification to alert the callee. The voice of thecaller is immediately played out via the speaker. The callee doesn'tneed to do anything in order to hear the caller because the SilenceButton 110 of the channel is up by default. When the callee presses downthe Talk Button 108 of the channel, the Talk Button 108 on the callee'sdevice turns red. The Channel Lights on both the caller's and thecallee's devices will turn red. Additionally, a sound alert is played onthe caller's device. The caller will first hear a sound alert and thenthe callee's voice.

A callee may get an incoming audio stream while talking to and/orlistening to one or more users on certain channels (“the activechannels”). An incoming audio stream from another caller causes thecorresponding Channel Light to flash red light assuming this channel isdifferent from the active channels. There is also a sound alert playedon callee's device. However the voice of the incoming audio streamercan't be heard because the device is not idle. If the callee decides topick up the call by pushing down the Talk Button 108 of the incomingaudio stream channel, then the voice of the incoming audio streamer canbe heard by the callee. Pushing down the Talk Button 108 of the incomingaudio stream channel causes the down Talk Buttons of the active channelsto be released, therefore muting the callee on these channels. It alsocauses the Silence Buttons of the active channels to go down and staydown, thus silencing the active channels.

For instance, User_1 of Device_1 may speak to User_2 and User_3 bypressing down Talk_1 and Talk_2 buttons simultaneously. An incomingaudio stream comes in on Channel 3 of Device_1 from User 4. ChannelLight_3 flashes red light on Device_1. A sound alert is played on Device1. User_1 can't hear User_4. If User 1 presses down Talk 3, then User 1will hear User_4, and User_4 can hear User 1. Essentially two-way audiostreams between User 1 and User_4 are initiated. Additionally Talk 1 andTalk_2 buttons are released, and the Silence 1 and Silence_2 buttons godown and stay down.

In another case where User_1 of Device_1 is listening to (instead ofspeaking to) User_2 and User_3, an incoming audio stream comes in onChannel 3 from User_4. Channel Light_3 flashes red light on Device_1. Asound alert is played on Device 1. User 1 can't hear User_4 yet. If User1 presses down Talk 3, then Silence 1 and Silence_2 go down. Now User 1and User_4 can talk to each other, but User 1 can't hear User_2 orUser_3 anymore. If there are any Talk Buttons that are currently down,they are released as well. This operation effectively deactivated thestreams between User 1 and User 2, and also between User 1 and User_3.It initiates the two-way streams between User 1 and User_4.

2.11. Conference Call

An Instant Conference Call may be defined as having more than twoparties on a call where all parities can hear each other like on atraditional conference call. However, the difference between the instantconference call and the traditional conference call is that the instantconference call has the instant voice feature. There is no dialing ofdigits. There is no dial tone or ringtone. It gives users full controlof the call through a combination of button operations such as add anddrop, Talk and Silence, and Talk to All and Silence All. Severalcombinations of the instant conference call operations result in newcall features that are not supported by the traditional conference call.For simplicity, instant conference calls and conference calls are usedinterchangeably in this document. Traditional conference calls as peopleknow it today are specifically referred to as “traditional conferencecalls”.

For a user (“the host”) to start an instant conference call, he may usethe Call Add Button. He first presses down the Talk Button correspondingto a first participant. He then presses the Call Add Button. Then hepresses down a second Talk Button corresponding to a second participant.Note that when the Call Add Button is pressed, it doesn't stay down.Also the Call Add Light turns on when it is pressed and stays on untilthe conference call is completed. The corresponding Talk Lights alsoturn red.

To drop a participant from a conference call, the host presses on theCall Drop Button. Then he presses the Talk Button corresponding to theparticipant that he intends to drop. When the Call Drop Button ispressed, it doesn't stay down. The corresponding Talk Button is releasedon the host device and the Talk Light turns off. The corresponding TalkButton on the participant's device is also released and the Talk Light128 turns off. Additionally, a sound alert is played on the conferencecall to indicate the termination of the call with this participant. Nowthe participant can't be heard on the conference call. The correspondingChannel Lights and the Talk Lights on both the host and theparticipant's devices turn off.

For a participant to drop himself off a conference call, the participantpresses on the Call Drop Button. Then he presses the Talk Buttoncorresponding to the conference call. When the Call Drop Button ispressed, it doesn't stay down. The corresponding Talk Button is releasedon the participant's device and the Talk Light turns off. Thecorresponding Talk Button on the host's device is also released and theTalk Light turns off. Additionally, a sound alert is played on theconference call to indicate the termination of the call with theparticipant. Now the participant can't be heard on the conference call.

In order to host a conference call with users of all the connecteddevices, the host can first press the Call Add Button, then he cansimply press the Talk to All Button 112. Like a Talk Button 108, if aTalk to All Button 112 is pressed down, it remains down. The Talk to AllLight 132 also turns on. The Talk to All Button 112 represents all theTalk Buttons on the device. Therefore, all the Talk Buttons go down withit and the Talk Lights turn red. The users of all the connected devicesare added to the conference call.

In order to terminate a conference call at once, the host can firstpress the Call Drop Button, then he can simply press Talk to All Button112. The Talk to All Button 112 represents all the Talk Buttons on thedevice. Therefore, all the Talk Buttons along with the Talk to AllButton 112 on the host's device will be released and the conference callis terminated at once. Additionally, all the corresponding Talk Buttonson the participants' devices are also released. When the conference callis terminated for all the parties, a sound alert is played on theconference call to notify all parties that the conference call isterminated.

When the conference call is terminated completely on the device, theCall Add Light turns off. In other words, the Call Add Light indicatesif there is an ongoing conference call hosted by the device or not.

11.1. Audio Mixing

Audio mixing may be required for a conference call. The audio mixingfunction is provided by the device of the conference call host. Assumethat User 1 is the host. Consider two voice calls between the host (User1) and two participants (User_2 and 3). Without audio mixing, User_2 and_3 can talk to User 1, but not to each other. When audio mixing isenabled on Device 1, Device_1 mixes the audio streams as describedbelow, which enables 3-way conferencing, and all three can talk to eachother.

Device_1 mixes the voices of User 1, User_2 and User_3 and plays out themixed voices via its speaker.

Device_1 mixes User 1's voice with the audio stream that it receivesfrom User_2, and sends the mixed voices to User_3.

And Device_1 mixes User 1's voice with the audio stream that it receivesfrom User_3, and sends the mixed voices to User 2.

As a result of audio mixing, User_2 can hear User_3, and User_3 can alsohear User_2 even though User_2 and User_3 are not directly connectedwith each other. All three users can hear each other on the conferencecall.

FIG. 7 illustrates a conference call among multiple communicationdevices according to aspects of this disclosure. In particular, FIG. 7illustrates a step-by step process for User_1 to start a conference callwith User_2 and User_3 sequentially.

Step 1: User_1 presses down Talk 1. Now an audio stream from Device 1 toDevice 2 is initiated. User 2 can hear User 1. Step 2: User_1 pressesthe Call Add Button, then presses Talk 2. Now an audio stream fromDevice_1 to Device 3 is initiated. User_3 can hear User 1. Now on Device1, both Talk_1 and Talk_2 buttons are down, and the corresponding TalkLights are red. Additionally, the Call Add Light is turned Step 3:User_2 hears a sound alert for an incoming audio stream. User_2 can alsosee a flashing red light to indicate on which channel the call is comingin. User_2 responds by pressing down Talk 1, now an audio stream fromDevice 2 to Device 1 is initiated. User 1 can hear User 2.

Step 4: Device 1 mixes User 2's voice with User 1's voice and sends themixed voices to User 3. Now User 3 can hear User 1 and User_2 due to theaudio mixing by Device 1.

Step 5: User_3 hears a sound alert for an incoming audio stream. User_3can also see a flashing red light to indicate on which channel the callis coming in. User_3 responds by pressing down Talk 1 button, now anaudio stream from Device 3 to Device 1 is initiated.

Step 6: Device_1 mixes the voices of User_2 and User_3 and plays it viathe speaker. User 1 can hear User_3 in addition to User_2. Additionally,Device 1 mixes User 3's voice with User 1's voice and sends the mixedvoices to User 2. audio mix Now User 1, _2, and 3 can all hear eachother.

2.11.2. Conference Call Mute and Silence

During an instant conference call, if a participant wants to mutehimself, he can press on the Talk Button 108 on his device correspondingto the conference call to release the button. Now this participant can'tbe heard, but he can still hear everyone else on the conference call.This action is equivalent to pressing the mute button on a traditionalphone. For instance, if User_3 presses on Talk 1, he deactivates theaudio stream from User 3 to User 1. Now User 3 can't be heard by User 1or _2. Essentially User_3 muted himself from the conference call.

For User_3 to un-mute himself, User_3 can press down Talk 1 again. NowUser_3 can be heard again on the conference call. The question here is:how does the system know that User_3 is part of the original conferencecall instead of a caller of a new and independent one-way call? Theanswer lies in the host device, namely Device 1. Device 1 remembers theoriginal conference call structure, and adds User_3 back to theconference call as long as the conference call is still active.

The host device of an instance conference call is responsible forremembering the structure of the conference call until the lastparticipant leaves the conference call. In the case of FIG. 7, Device_1is responsible for remembering and maintaining the conference callstructure.

During an instant conference call, if a participant presses down theSilence Button 110 on his device corresponding to the conference call.The conference call is silenced on the participant's device.

During an instant conference call, there are Talk Buttons that arealready down on the host device. If the host presses on a Talk Button108 that is already down without pressing the Call Add or Drop Buttonfirst, then it releases the Talk Button 108. Essentially the host mutesthe conference call to the corresponding participant so that theparticipant can't hear the conference call. To un-mute the conferencecall to the participant, the host presses down the Talk Button 108again. Again the host device remembers the conference call structure,and adds the participant back to the conference call.

During an instant conference call, if the host presses down a SilenceButton 110 corresponding to a participant, then it silences theparticipant on the conference call. However, the participant can stilllisten in on the conference call. For instance, User 1, _2 and _3 are ona conference call and User 1 is the host of the instant conference call.If User_1 presses down Silence_1 on Device 1, then User_1 silences User2 on the conference call. However, User_2 can still listen in on theconference call.

During an instant conference call, there are Talk Buttons that arealready down on the host device. If the host presses down a Talk Button108 that is currently up without pressing the Call Add Button first, itreleases all the Talk Buttons that were down, it also makes all thepaired Silence Buttons go down and stay down. Through this action, thehost just initiated a new audio stream to a new user. This also causesthe conference call to be muted to all participants. This also silencesall the participants on the conference call. No one on the conferencecall can hear each other. Essentially this operation puts the conferencecall on hold.

During an instant conference call, if a participant instead of the hostpresses down a Talk Button 108 that is currently up without pressing theCall Add Button first, it releases the down Talk Button 108corresponding to the conference call, it also makes the paired SilenceButton 110 go down and stay down. Through this operation, theparticipant just initiated a new audio stream to a new user. This alsocauses this participant to be muted on the conference call, it alsosilences the conference call to the participant.

2.11.3. Daisy-Chaining of Audio Mixers

After a conference call is initiated by a host, a participant of theconference call (the “second host”) can also add a new participant bypressing down the Call Add Button, and then pressing down another TalkButton 108. In this case, the device of the second host acts as a secondaudio mixer for the incoming voice streams and sends the mixed voicesstreams out only to the participants that it hosts. Essentially theaudio mixers of the first host device and the second host device aredaisy-chained to support the conference call co-hosted by the host andthe second host. In theory, there is no limit as to how many levels ofdaisy-chaining the system can support. Practically, with each level ofdaisy-chaining, the quality of service of the conference call woulddeteriorate due to increased noise and delay.

FIG. 8 illustrates an example of a daisy-chained conference call amongmultiple communication devices according to aspects of this disclosure.In particular, FIG. 8 shows a step-by-step activation process of adaisy-chained conference call.

Step 1 and 2: User_1 initiates an instant conference call with User_2and _3 by pressing down Talk_1 on Device_1 first, then Call Add Button,and then Talk_2 on Device_1.

Step 3 and 4: User_2 and User_3 respond to the conference call bypressing down Talk_1 on Device_2 and Talk_1 on Device 3, respectively.

Now User 1, 2 and _3 are on a conference call.

Step 5: User_3 now adds User_4 into the conference call by pressing theCall Add Button and then Talk 3 on Device 3.

Step 6: User_4 responds to the conference call by pressing down Talk_3on Device 4.

Since Device_1 invited Device_2 and Device_3 to the conference call,Device_1 is responsible for providing the audio mixing function toDevice_2 and Device_3. Device_1 mixes the incoming audio stream fromDevice_2 with User 1's voice into a composite audio stream (#2) as shownin FIG. 8 Device_1 then sends the composite Audio Stream #2 to User_3.Similarly, Device_1 mixes the incoming audio stream from Device_3 andUser 1's voice into a composite audio stream (#1). Device_1 then sendsthe composite Audio Stream #1 to User_2.

Device_3 receives the audio stream #2 which contains the voices ofUser_1 and User 2. Device 3 mixes Audio Stream #2 with User 3's voiceinto Audio Stream #5 and sends it to Device 4. Device 3 also receivesthe audio stream #6 which contains User 4's voice. Device 3 mixes AudioStream #6 with User 3's voice into Audio Stream #4 and sends it toDevice_1. Device 3 also mixes Audio Stream #2 and #6, and plays it outvia its speaker.

Since Audio Stream #5 contains the voices of User 1, User_2 and User_3,User_4 can hear all parties. Since Audio Stream #1 contains voices fromUser 1, User_3 and User_4, User_2 can hear all participants and thehost.

Through audio mixing, all participants and the host each other. Here isthe content of each stream in FIG. 8 for the conference call.

Audio Stream #1: voices of User 1, _3, and _4

Audio Stream #2: voices of User 1 and _2

Audio Stream #3: voices of User_2

Audio Stream #4: voices of User_3 and 4

Audio Stream #5: voices of User 1, _2 and _3

Audio Stream #6: voices User_4

FIG. 9 illustrates a loop that may be formed by multiple connectedcommunication devices according to aspects of this disclosure. In orderto prevent loop from forming, a participant can't add the host to theconference call because if the participant presses the Talk Button 108corresponding to the host, the Talk Button 108 is released. Thisprevents a direct loop from forming between the host and theparticipant. Despite this, there is still the possibility of loopforming in an indirect way. For instance, User 1, _2, _3 and _4 are on aconference call as shown in FIG. 9. User_1 is the first host and User 3is the second host. If User 4 adds User_1 into the conference call, thena loop among User 1, _3 and _4 could potentially be formed. User_1 willsee an incoming audio stream coming in on Channel 3. If User_1 pressesdown Talk 3, then all the down Talk Buttons will be released and all thepairing Silence Buttons will go down. In this case, Talk_1 and Talk_2buttons are released. Therefore, the conference call portion hosted byDevice_1 is muted to User_2 and User_3. Silence_1 and Silence_2 buttonsgo down, both User 2 and User 3 are silenced on the conference callportion hosted by Device 1. However, User_1 and User_4 can talk to eachother. The audio mixer of Device 3 is still functioning. Since User_4 isthe third host, Device_4 acts as a audio mixer for the incoming stream.Device_4 mixes Audio Stream #5 (note User 1's voice and User 2's voiceare not present) with User_4's voice, and sends it to User_1. Device_4also mixes stream #8 (User 1's voice) with User_4's voice, and sends itto User_3. Essentially Device 3, 4 and Device_1 are having a conferencecall hosted by Device_4.

Here is the content of each stream in FIG. 9 for loop forming.

Audio Stream #1: no voice

Audio Stream #2: no voice

Audio Stream #3: voice of User_2 (silenced by Device 1)

Audio Stream #4: voices of User_3, _4 and 1 (silenced by Device 1)

Audio Stream #5: voices of User_3

Audio Stream #6: voice of User_4 and User_1

Audio Stream #7: voices of User_3 and 4

Audio Stream #8: voice of User_1

User_4 can hear User 1 and 3. User_3 can hear User_4 and User_1. User 1can hear User_4 and 3. Essentially a conference call among User 1,User_3 and User_4 is initiate initiated and is hosted by Device 4. Apotential loop is avoided in this case.

If a loop forms during a conference call, it can be confusing toparticipants. One way to handle it is to let the participants handle it.They can try to sort it out by dropping the participant that caused theloop. Or they can terminate the conference call entirely and restart theconference call.

If there are multiple hosts for a conference call, when one host drops aparticipant who is a second host for other participants (“the secondparticipants”), then the second host and the second participants aredropped from the conference call portion hosted by the first host.However, the second host and the second participants can continue withthe conference call amongst themselves.

FIG. 10 illustrates an example of dropping a second host from aconference call according to aspects of this disclosure. After User_3 isdropped from the original conference call from FIG. 8, User_3 and User 4are still on a call between themselves. Note that the host can only dropthe portion of the conference call that he started, but he can't dropthe portion that was started by another host.

2.12. Sending and Receiving Voicemail

A Voicemail Light on a device flashes red as soon as a voice messagearrives. If the user of the device presses the Voicemail button, then hewill start hearing the voicemail messages with the newly recordedmessage being played first. The Voicemail button doesn't stay down whenpressed. Before each message is played, the device will announce thechannel from which the message came in on. Pressing the Voicemail buttonagain, the user skips from the current message to the next message.Voicemail messages are automatically deleted after they are listened toeven if the user doesn't finish listening to the message.

In order to save a voicemail message, the user can press the Voicemailbutton twice quickly, this will save the current message and skip to thenext message. FIG. 11 illustrates logic flow for recording a voicemailaccording to aspects of this disclosure.

In FIG. 11, User_1 presses down Talk_1 button. According to FIG. 6,Talk_1 corresponds to a channel connected to Device 2. Device 1 sends a“Talk Initiation” message to Device 2. Upon receiving “Talk Initiation”,the Channel Light on Device_2 corresponding to the incoming audio streamflashes red light. Device_2 sends a NACK message to Device_1 to indicatethat Device_2 is busy or unavailable. If there is at least one activechannel on Device_2, then Device_2 is busy. An active channel may havean incoming audio stream, outgoing audio stream, or both. If either aSilence Button 110 or a Talk Button 108 or both are down on Device_2,then Device_2 is unavailable. Alternatively if User_2 is listening on achannel, then Device 2 is unavailable. After sending the NACK message,Device_2 also starts to record User 1's voice. Upon receiving an NACK,Device_1 plays a message like “Callee isn't available, please leave amessage.” User_1 continues talking to leave a message. User_1 pressesTalk_1 to release the button. Device_1 sends a Talk Termination messageto Device_2. Device_2 then sends an ACK and stops recording User 1'svoice.

2.13. Sending and Receiving Streaming Web Content

The sender can log into his account on a website through the Internet.In his account, there is a calendar. The sender can specify a specifictime for the streaming content to be delivered. He also specifies thesender's name and the recipient's Device Name(s). There might be one ormultiple recipients. The recipients may have given permission to receivestreaming web content. The streaming content can be the recorded voiceof the user or a song or a combination of various audio contents. Thewebsite is hosted by a web server as part of the Instant CommunicationsSystem.

The streaming content is stored on the Media Server. The Media Servercan be a third party server. Additionally, the Media Server has its ownstreaming contents from which a user can select from (e.g., radiostations, pod cast).

When the scheduled time arrives, the Media Server will send thestreaming content the recipient's device. The recipient's device willplay the stream content on the channel of the sender's device. Therecipient's device will play the streaming content immediately if theSilence Button 110 for the sender isn't down and the speaker isn't busy.

This feature could also be used as a reminder or an alarm. A user canpre-program some streaming content (e.g., voice message or music) toserve as a reminder or an alarm.

Streaming content playing on a device has a lower priority. It ispreempted by user activities. For instance, when an incoming audiostream comes into the device, it preempts the streaming content. Or if auser presses the Talk Button 108, it preempts the streaming content. Orif a user presses the voicemail message button, it preempts thestreaming content.

2.14. IP Packets

There are two types of IP packets in the call flows:

Signaling messages

Signaling messages include Talk Initiation, Talk Termination, Call Add,Call Drop, ACK, NACK, Request IP Address, Return IP Address, AddConnection, Add Connection Accepted, etc.

Signaling messages can use either TCP/IP or UDP/IP protocol.

In each signaling message sent by a device to another device, therecontain the Device Names of the sender and the receiver. In each messagesent by a device to the Instant Voice Server, there contain the hardwareID and the Device Name of the sender. In each message sent by theInstant Voice Server to a device, there contain the hardware ID and theDevice Name of the receiver.

Bearer Traffic Packets

Bearer traffic packets carrying multimedia content including audio andvideo typically use UDP/IP protocol.

Each bearer traffic packet may be time stamped with the accuracy on theorder of millisecond by the device generating the packets. Thetimestamps will be used to sort packets that are out of order and todiscard late packets.

Additionally, all signaling messages and bearer traffic packets areencrypted to protect the privacy of users and the content ofcommunications.

3. Configuring Devices

FIG. 12 illustrates a bottom-up view of the communication deviceaccording to aspects of this disclosure. A device 102 may or may nothave a screen 1202 or data entry mechanism 1204 (e.g., a keyboard). Ifthe device has a screen 1202 and a data entry mechanism 1204 as shown inFIG. 12, then configuration of the device can be done through theseinterfaces.

Where a device does not have a display 1202 and a data entry mechanism1204, then the configuration may be done through a configuration machinesuch as PC, a laptop, a tablet, or a smartphone that has a display anddata entry mechanism. The configuration machine is connected to thedevice locally either via a cable (e.g., a USB cable) or via a wirelessconnection (e.g., infrared). The configuration machine needs to have theconfiguration software installed on the machine to manage the device.The software can be downloaded from the Internet or an applicationstore, or copied from a disk. Once the configuration machine and thedevice are connected and the configuration software running, a user canconfigure the device via the configuration machine. After a deviceestablishes connection with the Instant Communications Server, thedevice can be configured via a web site provided by the InstantCommunications Server.

In the case where the device doesn't have a screen display, there needsto be an Event Indicator that tells the user that there is an incomingevent that needs to be handled. For instance, if the device receives arequest to connect from another user, the Event Indicator will turn on.The user will then know to handle the request through one of the threeways to configure the device.

3.1. Configuring Connectivity

Two or more devices are typically sold as a package. After plugging inthe power, the user first needs to connect the devices to the network.For instance, if there is a WiFi network, then the user will select theAccess Point ID and enter the WEP key on each of those devices. Theconfiguration interface will indicate that the WiFi Connection issuccessful.

Each device is pre-configured to connect with the Instant CommunicationsServer as soon as it establishes a Internet connection. For instance,each device is pre-configured to contact a certain Universal ResourceLocator (URL) or a certain IP address where the Instant CommunicationsServer is located. If the connection from the device to the InstantCommunications Server is successful, then the Connectivity Light 126will turn green. At this point, the Instant Communications Server hasobtained the device's IP address. Since this is a portable device, theIP address of the device may change from time to time and the devicewill update the Instant Communications Server with the new IP address.

There is a special case where the Instant Communications Server is notavailable for various reasons. One reason could be that the devicesreside on a LAN that isn't connected to the Internet. Therefore thisgroup of devices can't connect to the Instant Communications Server. Inthis case, the system may still allow the devices on the same LAN tocommunicate with each other in the absence of the Instant CommunicationsServer. The devices on the same LAN needs to discover each other andestablish connectivity with each other.

3.2. Naming of Devices

Each device has a globally unique hardware ID that is hardwired in thedevice by the manufacturer. The hardware ID uniquely identifies thedevice.

Each device may have a globally unique name configured by a user andapproved by the system. This unique name is called the Device Name.Associated with the Device Name is the password. A user might label hisdevice with a Device Name representing a person or a location. Dependingon the application, the Device Name of a device might be person's name,such as John. Alternatively, if the device is distributed in a big houseand functions like an intercom system, then the Device Name for thedevice might be “Living Room”.

The Device Name and password may be configured for the device. This maybind the hardware ID with the Device Name. The Device Name and password,along with the device's hardware ID and IP address are sent to theInstant Communications Server The Instant Communications Server grantsthe selection of Device Name and password, and the binding of DeviceName with the hardware ID.

The Instant Communications Server maintains the information of all thedevices, such information includes hardware ID, the Device Name andpassword, the IP address of the device, network configurationparameters, and channel configuration. FIG. 13 shows an example of theconfiguration.

A user may be an administrator of multiple devices. The user can createa globally unique User Name for all the devices that he manages. TheUser Name is used as a login name for the user's account accessed viathe web site provided by the Instant Communications Server. Associatedwith the User Name is the password. Once logged in, the user can managemultiple devices under one account via the Internet if these devices arealready configured to connect the Instant Communications Server.

Once a device is configured with a Device Name, the hardware ID of thedevice is bound with the Device Name. A user can change the Device Nameof a device to another Device Name. The device will update the InstantCommunications Server with the new Device Name.3.3. ChannelConfiguration

The next step is to configure each device to connect to other devices.The connection to another device is called a channel. FIG. 13illustrates an example of configuring the channel of the communicationdevice according to aspects of this disclosure. For instance, in FIG.13, a user can configure each channel on a device in the following way.

The device in FIG. 13 is called Device 1. The user of the device iscalled User 1. In further detail, Channel 1 on Device 1 refers to theconnection with Device 2 whose user is User 2. Channel 2 on Device 1refers to the connection with Device 3 whose user is User 3. Channel 3on Device 1 refers to the connection with Device 3 whose user is User 4.Corresponding to Channel 1, there are Talk_1 and Silence_1 buttons, andChannel Light 1. If the connections with Device 2, _3 and _4 are good,then Channel Light 1, _2 and _3 on Device 1 are green. Note that Channel4 is not configured, therefore Channel Light_1 is dark.

3.4. Remote Configuration

Once a device connects to the Instant Communications Server, then thedevice can be configured remotely via the Internet by logging in withthe User Name and password combination. A user can remotely add wirelessconnections such as a new WiFi access point. A user can configurechannels as well. A user can also accept or reject a request to addanother user.

3.5. Channel Establishment

FIG. 14 illustrates an exemplary call flow for establishing a channelbetween two devices according to aspects of this disclosure. Referringto FIG. 14, User_1 configures Channel 1 to correspond to Device_2 byentering the Device Name “Device 2”.

Device 1 then sends a “Request for IP Address for Device_2” message tothe Instant Communications Server. The Instant Communications Serverreturns with an IP address for Device_2. Device 1 then sends an “AddConnection” message to Device_2 using Device 2's IP address asdestination. The message also includes the Device Name “Device_2” as thedestination device, and the Device Name “Device 1” as the source device.User_2 of Device_2 can accept or deny the request. User_2 can also blockany further requests from the user. If User_2 accepts the request,Device_2 sends an “Add Connection Accepted” message back to Device 1.Additionally, User_2 needs to select a channel that corresponds toDevice 1. Now Device 1 and Device_2 are connected and are configured oneach other's devices. Channel Light 1 on Device 1 and Channel Light 1 onDevice_2 both turn green. After the channel is established, both devicescan identify each other by the device names and know how to communicatewith each other by knowing the IP addresses of each other. Additionally,on a device, the connected device is mapped to a specific channel. Eachchannel on the device has a channel identifier. All of thisconfiguration information including channel identifier, device namecorresponding to the channel, and the IP address corresponding to theconnected device is stored at the device.

When the user finishes configuring all the devices, FIG. 6 shows anexample of the mapping between channels and devices among multipleconnected devices.

For safety reasons, the call flow for adding a channel can be altered sothat the IP Address of Device_2 is not sent to Device_1 because Device_1isn't approved yet by User_2 of Device_2. In this case, the InstantCommunications Server acts as an intermediary. The InstantCommunications Server will not return with an IP address for Device 2.Device 1 sends an “Add Connection” message to the Instant CommunicationsServer instead. The Instant Communications Server forwards the messageto Device_2. If User_2 accepts the request, Device_2 sends an “AddConnection Accepted” message back to the Instant Communications Serverwhich forwards the message to Device 1. Now Device_1 and Device_2 areconnected and configured on each other's devices. After Device_1 isaccepted by Device_2, the Instant Communications Server will return theIP address of Device_2 when requested.

Similarly, when a user of a first device wants to remove a connectionwith a second device, the user can reconfigure the corresponding channelto None (no one), or to a third device. And the user's device sends a“Drop Connection” message to the second device. The second deviceresponds with a confirmation to the first device. Now the correspondingChannel Lights on both the first and the second devices go dark.

3.6. Device Information Collection

A device will update the Instant Communications Server with thefollowing information on a periodic basis:

Device Name and password

Channel configurations

Network connectivity parameters (e.g., WiFi Access Point ID and WEP key)

4. Call Flows of Instance Voice Functions

The following use cases assume that Device 1, Device_2, Device_3 andDevice 4 are configured as shown in FIG. 6. The configurationinformation is stored in the memory of each device. Furthermore, eachdevice is connected to the other three devices.

FIG. 15 illustrates an exemplary call flow for talk initiation and talktermination according to aspects of this disclosure. Referring to FIG.15, User_1 presses down Talk_1 button. The processor of Device_1 mapsTalk 1 to Device_2 based on the configuration information stored inmemory. Additionally the processor maps Device_2 to its IP address.Using the IP address of the Device_2 as an IP packet destination,Device_1 sends a Talk Initiation message to Device_2. Device_1 startssending User 1's voice in the form of IP packets to Device_2. Device_2acknowledges the receipt of the message.

Device_2 plays a sound alert to indicate the incoming audio stream fromUser 1. Device_2 receives User 1's audio stream and plays User 1's voicestream on the speaker. Additionally, Channel Light_1 on Device_2 flashesred light to indicate the incoming audio stream from User_1 on Channel1. Now User_2 can hear User_1 without taking any action.

User_2 presses Talk_1 button next to the flashing red light. Theprocessor of Device_2 maps Talk 1 to Device_1 based on the configurationinformation stored in memory. Using the IP address it just received inthe IP packet, Device_2 sends a Talk Initiation message to Device 1.Device_2 starts sending User_2's voice in the form of IP packets toDevice_1. Device_1 acknowledges the receipt of the message. Device_1plays a sound alert to indicate the incoming audio stream from User_2.Device_1 receives User 2's audio stream and plays User 2's voice on thespeaker. Additionally, Channel Light_1 on Device_1 and Device_2 turnred. Now User_1 can hear User_2.

The Talk Initiation message may include one or more of the followinginformation: message type, source device name, destination device name,audio encoding format, video encoding format, rich text format,encryption information, etc. The Talk Initiation message may be one typeof initiation message transmitted by the communication device. Dependingon the type of content being transmitted, the communication device maytransmit other types of initiation messages, such as a Video Initiationmessage, Music Initiation message, or other types of initiationmessages. In this manner, the initiation message transmitted by thecommunication device may inform the receiving communication device ofthe type of information the receiving communication device shouldexpect.

The IP packets of an audio stream may include source and destinationdevice names in addition to digitized audio content. The IP packets maybe encrypted for security and privacy reasons.

User_1 wants to mute himself on the call. User_1 releases the Talk 1button by pressing on it again. Device_1 stops recording User 1's voiceand stops sending User 1's audio stream to Device_2. Additionally,Device_1 sends a Talk Termination message to Device_2. Device_2acknowledges the receipt of the message and stops processing the audiostream from Device 1. A sound alert for the Talk Termination is playedby Device_2. Channel Light_1 on Device_2 turns green. Channel Light_1 onDevice_1 turns flashing red. Now User_2 can't hear User 1.

Note that User_1 can still hear User_2. In order to silence User_2,User_1 presses down Silence_1 button. Device_1 stops playing User_2'svoice on the speaker.

In addition, note that the Talk_1 button on Device_2 is still down. Atsome point, User_2 will release the Talk_1 button by pressing on itagain. Device_2 stops recording User_2's voice and stops sendingUser_2's audio stream to Device 1. Additionally, Device_2 sends a TalkTermination message to Device 1. Device_1 acknowledges the receipt ofthe message. A sound alert for the Talk Termination is played by Device1. However, since the Silence Button 110 is down, the sound alert issuppressed. Channel Light_1 on Device_1 turns green.

Note that after the Talk Initiation message was sent from Device_1 toDevice_2, Device_1 doesn't wait for ACK to come back from Device_2before sending out User 1's audio stream. User 1's audio stream can besent immediately after the Talk Initiation message was sent. This is animportant aspect of the system. In the past, an end-to-end connectionneeds to be set up via signaling for both the circuit and packet voicebefore anyone's voice is transmitted. At the end of the conversation,the connection has to be torn down. As the disclosed systems and methodsbypass all of these set up and tear down procedures at the time when auser initiates communications with another user, the disclosed systemsand methods effectively provide instant communications.

FIG. 16 illustrates an exemplary call flow for broadcasting a callaccording to aspects of this disclosure. In FIG. 16, User_1 presses theTalk to All Button 112. Since Talk to All on Device_1 corresponds to allthe connected devices, Device_1 sends Talk Initiation messages toDevice_2, Device_3 and Device_4. Device_1 starts sending User 1's voicein the form of IP packets to Device_2, Device_3 and Device_4. Device_2,Device_3 and Device_4 acknowledge the receipt of the messages. Device_2,3 and _4 play a sound alert to indicate the incoming audio stream fromUser 1. Device_2, Device_3 and Device_4 receive User 1's audio streamand play User 1's voice on the speakers. Additionally, Channel Light_1on Device_2, Channel Light_1 on Device_3 and Channel Light_1 on Device 4flash red light to indicate the incoming audio stream from User_1 onChannel 1. With audio mixing, now User_2, _3 and _4 can hear User 1.

User_2 presses Talk_1 button. Device_2 sends a Talk Initiation messageto Device 1. Device_2 starts sending User_2's voice in the form of IPpackets to Device 1. Device_1 acknowledges the receipt of the message.Device_1 plays a sound alert to indicate the incoming audio stream fromUser_2. Channel Light_1 on Device_1 and Device_2 turn red. Device_1receives User 2's audio stream and plays User 2's voice on the speaker.Now User_1 can hear User_2.

User_3 presses Talk_1 button. Device_3 sends a Talk Initiation messageto Device 1. Device_3 starts sending User 3's voice in the form of IPpackets to Device 1. Device_1 acknowledges the receipt of the message.Device_1 plays a sound alert to indicate the incoming audio stream fromUser_3. Channel Light_2 on Device_1 and Channel Light_1 on Device 3 turnred. Device 1 receives User 3's audio stream. Note that Device 1 alsoreceives User 2's voice. Device 1 mixes the voices of User_2 and User_3,and plays the mixed voices on the speaker. Now User_1 can hear both User2 and User 3. But User 2 and User 3 can't hear each other.

User_4 presses Talk_1 button. Device_4 sends a Talk Initiation messageto Device 1. Device_4 starts sending User 4's voice in the form of IPpackets to Device 1. Device_1 acknowledges the receipt of the message.Device_1 plays a sound alert to indicate the incoming audio stream fromUser_4. Channel Light_3 on Device_1 and Channel Light_1 on Device 4 turnred. Device 1 receives User 4's voice. Note that Device 1 also receivesUser 2's and User 3's voices. Device_1 mixes the voices of User_2,User_3 and User_4, and plays the mixed voices on the speaker. Now User_1can hear User_2, User_3 and User_4. But User_2, User 3 and User 4 can'thear each other.

Essentially, User_1 is having separate conversations with User_2, _3 and_4 simultaneously.

FIG. 17 illustrates an exemplary call flow for a conference callactivation according to aspects of this disclosure. In FIG. 17, User_1presses Talk_1 button. Since Talk 1 on Device_1 corresponds to Device_2as indicated by FIG. 6, Device_1 sends a Talk Initiation message toDevice_2. Device_1 starts sending User 1's voice in the form of IPpackets to Device_2. Device_2 acknowledges the receipt of the message.Device_2 plays a sound alert to indicate the incoming audio stream fromUser 1. Device_2 receives User 1's audio stream and plays User 1's voiceon the speaker. Additionally, Channel Light_1 on Device_2 flashes redlight to indicate the incoming audio stream from User_1 on Channel 1.Now User_2 can hear User 1.

User_1 presses the Call Add Button. Then User_1 presses Talk_2 button.Since Talk_2 on Device_1 corresponds to Device_3 as indicated by FIG. 6,Device_1 sends a Talk Initiation message to Device_3. Device_1 startssending User 1's voice in the form of IP packets to Device_3. Device_3acknowledges the receipt of the message. Device_3 plays a sound alert toindicate the incoming audio stream from User_1. Device_3 receives User1's audio stream and plays User 1's voice on the speaker. Additionally,Channel Light_1 on Device_3 flashes red light to indicate the incomingaudio stream from User_1 on Channel 1. Now User_3 can hear User 1.

User_2 presses Talk_1 button. Device_2 sends a Talk Initiation messageto Device 1. Device_2 starts sending User_2's audio stream in the formof IP packets to Device 1. Device 1 acknowledges the receipt of themessage. Device 1 plays a sound alert to indicate the incoming audiostream from User_2. Device 1 receives User_2's audio stream and playsUser_2's voice on the speaker. Additionally, Channel Light 1 on Device 1and Device 2 turn red. Now User 1 can hear User_2.

Since Device 1 is the host of the conference call, it mixes the incomingvoices and sending the mixed voices to each participant. In this case,Device 1 mixes the voices of User 1 and User 2, and sends the mixedvoices to Device_3. Now User_3 can hear User 1 and User_2.

User_3 presses Talk 1 button. Device_3 sends a Talk Initiation messageto Device 1. Device_3 starts sending User 3's audio stream in the formof IP packets to Device 1. Device_1 acknowledges the receipt of themessage. Device_1 plays a sound alert to indicate the incoming audiostream from User 3. Device 1 receives User 3's audio stream. Note thatDevice 1 also receives User 2's voice. Device 1 mixes the voices ofUser_2 and User_3, and plays the mixed voices on the speaker of Device1. Now User_1 can hear both User_2 and User_3. Additionally, ChannelLight_1 on Device_1 and Device 3 turn red.

Additionally, Device_1 mixes the voices of User_1 and User_3, and sendsthe mixed voices to Device 2. Now User 2 can hear User 1 and User 3.

Now User 1, User_2 and User_3 can all hear each other. The conferencecall activation is completed.

FIG. 18 illustrates an exemplary call flow for dropping a conferencecall participant by the host of the conference call according to aspectsof this disclosure. In FIG. 18, User 1 is hosting a conference call withUser_2 and User_3. User 1, User_2 and User_3 can all hear each other.Talk 1 and Talk 2 buttons on Device 1 are down. Talk 1 button on Device2 and Talk 1 button on Device 3 are down.

In order to drop User_2 from the conference call, User 1 first pressesthe Call Drop Button, and then presses the Talk 1 button to release it.A sound alert for the Call Drop of Device_2 is played on the conferencecall so all parties can hear it. Device 1 stops sending any audio streamto Device_2. Device 1 also stops mixing User_2's voice. Additionally,Device_1 sends a Call Drop messages to Device_2. Device_2 acknowledgesthe receipt of the message. Device_2 automatically releases Talk 1button, and Device_2 stops sending User_2's voice to Device 1.Additionally, Device_2 stops processing any audio stream from Device 1.Channel Light_1 on Device_1 and Device_2 turn green. Now User_2 iscompletely dropped off the conference call while the conference callcontinues on.

On Device 1, only Talk_2 is down. On Device_2, no button is down. OnDevice 3, only Talk_1 button is down. Device 1 and Device 3 can stilltalk with each other.

FIG. 19 illustrates an exemplary call flow for dropping a conferencecall by a participant of the conference call according to aspects ofthis disclosure. In FIG. 19, User_1 is hosting a conference call withUser_2 and User_3. User 1, User_2 and User_3 can all hear each other.

User_2 may or may not even know he is on a conference call. If he wantsto drop out of the call, he first presses the Call Drop Button, and thenpresses the Talk_1 button to release it. Device_2 stops sending User 2'saudio stream to Device 1. Additionally, Device_2 sends a Call Dropmessage to Device 1. Device_1 acknowledges the receipt of the message.Since Device_1 remembers the conference call structure, it knows thatthis user is a conference call participant. Device_1 automaticallyreleases Talk 1 button, and Device_1 stops sending any audio stream toDevice_2. Device_1 also stops mixing User_2's voice. A sound alert forthe Call Drop is played on the conference call so everyone can hear it.Channel Light_1 on Device_1 and Device_2 turn green. User_2 iscompletely dropped off the conference call while the conference callcontinues on.

FIGS. 20A-20B illustrates an exemplary call flow for activating aconference call according to aspects of this disclosure. In FIG. 20A,User_1 first pushes the Call Add Button, then he presses the Talk to AllButton 112. Since Talk to All on Device_1 corresponds to all theconnected devices, Device_1 sends Talk Initiation messages to Device_2,Device_3 and Device_4. Device_1 starts sending User 1's voice in theform of IP packets to Device_2, Device_3 and Device_4. Device_2,Device_3 and Device_4 acknowledge the receipt of the messages. Device_2,3 and 4 play a sound alert to indicate the incoming audio stream fromUser 1. Device_2, Device_3 and Device_4 receive User 1's audio streamand play User 1's voice on the speakers. Additionally, Channel Light 1on Device_2, Device_3 and Device 4 flash red light to indicate theincoming audio stream from User 1 on Channel 1. Now User_2, _3 and _4can hear User 1.

User_2 presses Talk_1 button. Device_2 sends a Talk Initiation messageto Device 1. Device_2 starts sending User_2's voice in the form of IPpackets to Device 1. Device_1 acknowledges the receipt of the message.Device_1 plays a sound alert on the conference call to indicate theincoming audio stream from User_2. Device_1 receives User_2's audiostream and plays User_2's voice on the speaker. Additionally, ChannelLight_1 on Device_1 and Device 2 turn red. Now User 1 can hear User 2.

Referring to FIG. 20B, User_3 presses Talk_1 button. Device_3 sends aTalk Initiation message to Device 1. Device_3 starts sending User 3'svoice in the form of IP packets to Device 1. Device_1 acknowledges thereceipt of the message. Device_1 plays a sound alert on the conferencecall to indicate the incoming audio stream from User_3. Channel Light_2on Device_1 and Channel Light_1 on Device_3 turn red. Device 1 receivesUser 3's audio stream. Note that Device 1 also receives User 2's voice.Device 1 mixes the voices of User 2 and User_3, and plays the mixedvoices on the speaker. Now User_1 can hear both User_2 and User_3.Additionally, Device 1 mixes the voices of User 1 and User 2 and sendsit to User 3. Device 1 also mixes the voices of User 1 and User 3 andsends it to User 2. Now User 2 and User 3 can hear each other.

User_4 presses Talk_1 button. Similarly, through the audio mixing byDevice 1, User 1, User_2, User_3 and User_4 can hear each other.

FIG. 21 illustrates an exemplary call flow for terminating a conferencecall according to aspects of this disclosure. In FIG. 21, User_1 ishosting a conference call with users of all the connected devices. Inthis case, all the connected devices are Device_2, Device_3 and Device4. User 1, User_2, User_3 and User_4 can all hear each other. The Talk1, Talk_2 and Talk 3 buttons and the Talk to All Button 112 on Device 1are down. Talk 1 button on Device_2, Talk 1 button on Device 3 and Talk1 button on Device 4 are down.

To terminate the conference call at once, User_1 first presses the CallDrop Button, and then presses the Talk to All Button 112 to release it.A sound alert is played on the conference call to indicate the droppingof a participant. Device_1 stops sending any audio stream to allconnected devices. Device_1 also stops processing audio stream from anydevices. Additionally, Device_1 sends a Call Drop message to all theconnected devices. The connected devices acknowledge the receipt of themessage. The connected devices automatically release the correspondingTalk Buttons respectively, and they stops sending its user's voice toDevice 1. Additionally, the connected devices stop processing any audiostream from Device 1. Channel Light_1 on Device 1, Device 2, Device_3and Device_4 turn green. Now the conference call is completelyterminated at once.

FIG. 22 illustrates an exemplary call flow for adding a participant to aconference call by a second host according to aspects of thisdisclosure. In FIG. 22, User_1 is hosting a conference call with User_2and User_3. User 1, User_2 and User_3 can all hear each other.

User_3 wants to add User_4 to the conference call. So User_3 presses theCall Add Button. Then User_3 presses Talk_3 button. Since Talk_3 onDevice_3 corresponds to Device_4 as indicated by FIG. 6, Device_3 sendsa Talk Initiation message to Device_4. Device_4 acknowledges the receiptof the message.

Since Device_3 is the second host of the conference call, it providesthe audio mixing function for new participants that it adds to theconference call. In this case, the incoming audio stream from Device 1contains the mixed voices of User 1 and User 2. Device 3 mixes theincoming voices from Device_1 with User 3's voice, producing the mixedvoices of User 1, User_2 and User_3. Device_3 sends the mixed voices toUser_4. Now User_4 can hear User_1, User_2 and User_3.

Device_4 plays a sound alert to indicate the incoming audio stream fromUser_3. Additionally, Channel Light_3 on Device_4 flashes red light toindicate the incoming audio stream from User_3 on Channel 3. Now User_4presses Talk_3 button. Since Talk_3 on Device_4 corresponds to Device_3as indicated by FIG. 6, Device_4 sends a Talk Initiation message toDevice_3. Device_4 starts sending User_4's voice in the form of IPpackets to Device_3. Device_3 acknowledges the receipt of the message.Device_3 receives User 4's voice. Note that Device 3 also receives theaudio stream from Device 1. Device 3 mixes the voices from Device_1 withUser_4's voice, and plays the mixed voices on the speaker. Now User_3can hear User_1, User_2 and User_4.

Additionally, Device_3 mixes the voices of User_3 and User_4, and sendsthe mixed voices to Device 1. Note that Device 1 also receives User 2'svoice. Device_1 mixes the incoming voice from Device_2 with the voicesfrom Device_3, and plays the mixed voices on the speaker. Now User_1 canhear User_2, User_3 and User_4.

Device_1 mixes the audio stream from Device_3 with User 1's voice, andsends the mixed voices to Device_2. Device_2 receives the voices of User1, User_3 and User_4. Now User_2 can hear User 1, User_3 and User_4.

Now User 1, User_2, User_3 and User_4 can all hear each other. Theconference call is initiate initiated using two audio mixers: Device 1and Device 3.

FIG. 23 illustrates an exemplary call flow for dropping a second host ofa conference call by the host of the conference call according toaspects of this disclosure. In FIG. 23, User_1 is hosting a conferencecall with User_2 and User_3. User_3 acting as a second host, has addedUser_4 to the conference call. User 1, User_2, User_3 and User_4 can allhear each other.

User_1 wants to drop User_3 from the conference call. User_1 firstpresses the Call Drop button, and then releases the Talk_2 button bypressing on it again. Device_1 stops sending audio stream to Device_3.Additionally, Device_1 sends a Call Drop message to Device_3. Device_3acknowledges the receipt of the message and stops processing the audiostream from Device 2. This audio stream contain the mixed voices of User1 and User 2. Now User 3 can't hear User_1 or User_2. Additionally,Device_3 automatically releases the Talk_1 button, and Device_3 stopssending any audio stream to Device 1.

Now Device_1 and Device_2 can hear each other. Device 3 and Device 4 canhear each other.

5. Touch Screen Implementation of Instant Voice Device

Two ways of using the touch screen are described below:

The client device can be implemented via a software client installed onan existing device with touch screen. Such devices may have thenecessary hardware to support the client software including the touchscreen, Internet connectivity, microphone and speaker. Touch screensmartphones, e-book readers, and tablet computers typically are alreadyequipped with the necessary hardware. The client software can bedownloaded and installed on such a device. The client software runs asan application on such a device.

The client device is a physical device that is equipped with a touchscreen. This device is specifically designed to be an Instant VoiceDevice.

The Graphic User Interface (GUI) of the touch screen can have differentlayout. FIGS. 24-25 represent different layout of the GUIs.

In FIG. 24, a first GUI 2402 bears the resemblance of the physicaldevice 102 as shown in FIG. 1, thus giving users the familiarity of thecommunication device 102 with physical buttons. In one embodiment, thefirst GUI design 2402 may include a Voicemail Button 2404 and aVoicemail Light 2406, a Talk to All Button 2408 and a Talk to All Light2410, a Silence All Button 2412 and a Silence All Light 2414, a Call AddButton 2416 with a Call Add Light 2418, a Call Drop Button 2420, a TalkButton 2422 with a Talk Light 2424, a Silence Button 2426 and a SilenceLight 2428, an Away Button 2430 with an Away Light 2432, a Channel Light2434, an On/Off Button 2436, and a Connectivity Indicator 2438.

However, in order to support flexible number of channels, the GUI has tobe modified.

In FIG. 25, a second GUI design 2502 allows for many more channels to besupported. The second GUI design 2502 may include one or more of thebuttons of the first GUI design 2504. Moreover, a user may also use next2504 and last page 2506 buttons to flip back and forth through multiplechannels. The second GUI design 2502 may mimic the design of thephysical device 102 to result in similar user experience.

The software clients may have full interoperability with the physicaldevices via the Internet Protocol (IP). In general, a physicalcommunication device may have a hardware ID, but the client softwaredoes not. The client software can emulate a hardware ID by generating asoftware ID similar to the hardware ID that is unique among all hardwareand software ID after the client software is first installed. Thesoftware ID identifies the specific installation of the client. The usercan then configure the Device Name for the specific installation of thesoftware client during configuration. The Device Name must be uniqueglobally.

Configuration of a software client is similar to that of configuring aphysical device. Data entry and display can now be done on the touchscreen instead of using a configuration machine. Configuringconnectivity of a software client probably isn't needed if an existingdevice is already configured to connect to the Internet. Through touchscreen, a user can configure the Channel List.

Alternatively, the communication may be implemented via software on acomputer without the touch screen. For instance, a software client maybe installed a computer with a screen and a keyboard. In this case, theGUIs are similar to that of a touch screen. The operation of the GUIrelies on the keyboard and the screen.

6. Applications

This system has broad applications in communications. A few applicationsare outlined below, but the system is not limited to these applications.

Baby Monitor

Put a device in the baby's room and press down the Talk to All Button112. Put one or multiple devices in different rooms throughout thehouse. Now a parent can hear every sound in the baby's room throughoutthe rooms where such devices are placed.

Senior/Disabled/Sick Patient Monitor

Put a device in the room of a patient and press down the Talk to AllButton 112. Put one or multiple devices in different rooms throughoutthe house. Now a care taker can hear every sound in the patient's roomthroughout the rooms where such devices are placed. If the care takerneeds to speak to the patient, he can then press down the Talk Button108 corresponding to the device of the patient. Now they can talk toeach other.

Manager and Secretary

Put a device in the room of the secretary. Put a device in the room ofthe manager. When the manager wants something from the secretary, hepresses down the Talk Button 108 to speak to the secretary. Thesecretary presses down the Talk Button 108 with a flashing red light andresponds to the manager.

Intercom at Home

A large house may have many rooms, it might be tough to speak withfamily members who are in different rooms. Put a device in each of thoserooms. A mom wants to call her children to sit down for dinner. Shesimply presses down the Talk to All Button 112 on the device in thekitchen and say “Time for dinner!”. All her kids in their rooms can hearher and come to sit down for dinner. Alternatively, if the mom wants tospeak with one of her children, she presses down the Talk Button 108corresponding to the room of the child, and speaks to him.

Control Center

Put a device in the control center. Put a device in each of theworkshops that are scattered throughout the factory. A control centermanager can speak to people throughout the workshops at the same time.If the call is picked up by a workshop, the control center manager canswitch to one-to-one communications with that workshop.

Work Group

A group of co-workers need to work late at night to finish a jointproject. They are at home working on their own piece of the project, butneed to have real time communications with each other from time to timeover a period of several hours. The most effective way is for theseco-workers to be on a conference call. One way to do this is for one ofthe co-workers to host a conference call with all the other co-workers.Once all the co-workers are on the conference call, then they can heareach other as if they were in a room together. The conference call canbe left on for as long as needed. In this scenario, the co-workers mightneed to be in the listening mode most of the time while they work ontheir own piece. Every so often, a co-worker may need to speak withanother co-worker. The mute feature of the instant conference call isquite useful. The users put themselves on mute. They can un-mutethemselves, and speak to another person when needed.

Although the invention herein has been described with reference toparticular embodiments, it is to be understood that these embodimentsare merely illustrative of the principles and applications of thepresent invention. It is therefore to be understood that numerousmodifications may be made to the illustrative embodiments and that otherarrangements may be devised without departing from the spirit and scopeof the present invention as defined by the appended claims.

What is claimed is:
 1. A device-implemented method comprising:receiving, by a first communication device, a spoken command forinitiating communication with a second communication device, the spokencommand indicating the second communication device; responsive toreceiving the spoken command: determining, by the first communicationdevice, a device identifier associated with the second communicationdevice based upon the spoken command; initiating, by the firstcommunication device, a communication channel with the secondcommunication device using the device identifier associated with thesecond communication device, the communication channel configured tosupport one or more media streams over an Internet Protocol (IP) networkwith the second communication device; receiving, by the firstcommunication device, a media stream input; and transmitting, by thefirst communication device, an outgoing media stream containing themedia stream input to the second communication device via thecommunication channel.
 2. The method according to claim 1, furthercomprising receiving, by the first communication device, configurationinformation for the second communication device, the configurationinformation comprising the device identifier for the secondcommunication device.
 3. The method according to claim 2, furthercomprising storing, by the first communication device, the configurationinformation for the second communication device in a memory of the firstcommunication device.
 4. The method according to claim 1, furthercomprising configuring, by the first communication device, thecommunication channel to support the one or more multimedia streams withthe second communication device based upon the device identifier of thesecond communication device and at least part of the spoken command. 5.The method according to claim 1, wherein determining the deviceidentifier of the second communication device comprises: transmitting,by the first communication device, to a communication server a requestfor the device identifier associated with the second communicationdevice, wherein the request is generated according to the spokencommand; and receiving, by the first communication device, the deviceidentifier returned from the communication server.
 6. The methodaccording to claim 1, further comprising receiving, by the firstcommunication device, an incoming media stream from the secondcommunication device via the communication channel.
 7. The methodaccording to claim 6, further comprising displaying, by an indicatorlight of the first communication device, an indication of the incomingmedia stream.
 8. The method according to claim 6, wherein the incomingmedia stream includes an audio component, the method further comprisingplaying, by the first communication device, the audio component of theincoming media stream via a speaker of the first communication device.9. The method according to claim 6, wherein the incoming media streamincludes a video component, the method further comprising displaying, bythe first communication device, the video component of the incomingmedia stream via a graphical user interface of the first communicationdevice.
 10. The method according to claim 1, wherein the media streaminput of the outgoing media stream includes a video component.
 11. Afirst communication device comprising: a processor configured to:receive from a user a spoken command for initiating communication with asecond communication device, the spoken command indicating the secondcommunication device; determine a device identifier associated with thesecond communication device based upon the spoken command; initiate acommunication channel with the second communication device using thedevice identifier associated with the second communication device, thecommunication channel configured to support one or more media streamsover an Internet Protocol (IP) network with the second communicationdevice; receive a media stream input; and transmit an outgoing mediastream containing the media stream input to the second communicationdevice via the communication channel.
 12. The first communication deviceaccording to claim 11, wherein the processor is further configured toreceive configuration information for the second communication device,the configuration information comprising the device identifier for thesecond communication device.
 13. The first communication deviceaccording to claim 12, further comprising a memory configured to storethe configuration information for the second communication device. 14.The first communication device according to claim 11, wherein theprocessor is further configured to configure the communication channelto support the one or more multimedia streams with the secondcommunication device based upon the device identifier of the secondcommunication device and at least part of the spoken command.
 15. Thefirst communication device according to claim 11, wherein the processoris further configured to: transmit to a communication server a requestfor the device identifier associated with the second communicationdevice, wherein the request is generated according to the spokencommand; and receive the device identifier returned from thecommunication server.
 16. The first communication device according toclaim 11, wherein the processor is further configured to receive anincoming media stream from the second communication device via thecommunication channel.
 17. The first communication device according toclaim 16, further comprising an indicator light controlled by theprocessor, wherein the processor is further configured to control theindicator light to display an indication of the incoming media stream.18. The first communication device according to claim 16, furthercomprising a speaker configured to play an audio component of theincoming media stream received from the second communication device. 19.The first communication device according to claim 16, further comprisinga graphical user interface configured to display a video component ofthe incoming media stream received from the second communication device.20. The first communication device according to claim 11, furthercomprising a webcam configured to receive video input, and wherein themedia stream input of the outgoing media stream includes a videocomponent.